package com.dys.testrelect02;

import java.lang.annotation.Annotation;

/**
 * @className: com.dys.testrelect02.Test5
 * @description: 获取类的接口，所在包，注解
 * @author: pine cone
 * @version: v1.0.0
 * @createTime: 2024/08/27 下午10:53
 */
public class Test5 {
    /**
     * 这是一个main()方法,是应用程序的入口
     *
     * @param args 方法的形参列表,是一个字符串数组,包含了从命令行传递给程序的参数
     */
    public static void main(String[] args) {
        // 1.获取字节码信息
        Class<Student> cls = Student.class;

        // 2.获取运行时类的接口
        Class<?>[] interfaces = cls.getInterfaces();
        for (Class<?> anInterface : interfaces) {
            System.out.println(anInterface);
        }

        // 获取父类的接口
        // 先得到父类的字节码信息
        Class<? super Student> superclass = cls.getSuperclass();
        Class<?>[] interfaces1 = superclass.getInterfaces();
        for (Class<?> anInterface : interfaces1) {
            System.out.println(anInterface);
        }

        // 获取运行时类所在的包
        Package aPackage = cls.getPackage();
        System.out.println(aPackage);
        System.out.println(aPackage.getName());

        // 获取运行时类的注解
        Annotation[] annotations = cls.getAnnotations();
        for (Annotation annotation : annotations) {
            System.out.println(annotation);
        }
    }
}
